<HTML>

<SCRIPT>
function setFocus() {	
	if ((navigator.appName != "Netscape") && (parseFloat(navigator.appVersion) == 2)) {
	return;
	} else {
	self.focus();
	}
}
</SCRIPT><HEAD><TITLE>Index</TITLE></HEAD>

<BODY
	BGCOLOR		= #FFFFFF
	TEXT = #000000
onLoad="setFocus()";
>

<P>Names of design patterns appear in small capitals: e.g., A<FONT
SIZE=-1>DAPTER</FONT>.  Page numbers in bold indicate the definition
of a term. Numbers in italics indicate a diagram for the term.
Letters after a diagram's page number indicate the kind of diagram:
a "c" denotes a class diagram, an "i" denotes an interaction diagram,
and an "o" denotes an object diagram. For example, <I>88co</I>
means that a class and object diagram appears on page 88.</P>

<H2>P</H2>

<DL>

<DT><a name="parameterized types"></a>parameterized types 
<A HREF="chap1fs.htm#param-types" TARGET="_mainDisplayFrame"><B>21</B></A>, 
<A HREF="chapAfs.htm#parameterized_type" TARGET="_mainDisplayFrame"><B>361</B></A>, 
<I>see also</I> <A HREF="index-T.htm#template" target="TEXT">template</A></DT>

<DD>compared with inheritance 
<A HREF="chap1fs.htm#param-vs-inherit" TARGET="_mainDisplayFrame">22</A>
</DD>

<DD>compared with composition 
<A HREF="chap1fs.htm#param-vs-comp" TARGET="_mainDisplayFrame">22</A>
</DD>

<DT>parent class, <I>see</I> <A HREF="index-C.htm#class" target="TEXT">class, parent</A></DT>

<DT>parent references</DT>

<DD>defined in C<FONT SIZE=-1>OMPOSITE</FONT><A HREF="pat4cfs.htm#parentref-def-comp" TARGET="_mainDisplayFrame">166</A>
</DD>

<DT>parser 
<A HREF="pat5cfs.htm#parser-247" TARGET="_mainDisplayFrame">247</A>
</DT>

<DT>part-whole, <I>see</I> <A HREF="index-R.htm#recursive composition" target="TEXT">recursive composition</A></DT>

<DD><I>see also</I> <A HREF="index-A.htm#aggregation" target="TEXT">aggregation</A></DD>

<DT>Pascal 
<A HREF="chap1fs.htm#pascal" TARGET="_mainDisplayFrame">4</A>
</DT>

<DT>passive iterator, <I>see</I> <A HREF="index-I.htm#iterator" target="TEXT">iterator, passive</A></DT>

<DT>PassivityWrapper 
<A HREF="pat4dfs.htm#knownuses" TARGET="_mainDisplayFrame">182</A>
</DT>

<DT>path</DT>

<DD>specifying multi-segment shapes 
<A HREF="chap2fs.htm#path-multiseg-shape" TARGET="_mainDisplayFrame">57</A>
</DD>

<DT>pattern language 
<A HREF="chap6fs.htm#top" TARGET="_mainDisplayFrame">356</A>
</DT>

<a name="Pattern Languages of Programs"></a>
<DT>Pattern Languages of Programs 
<A HREF="chap6fs.htm#patt-lang-of-prog" TARGET="_mainDisplayFrame">357</A>
</DT>

<DT>pattern matching 
<A HREF="pat5cfs.htm#pattern-matching" TARGET="_mainDisplayFrame">243</A>
</DT>

<DT>persistence 
<A HREF="pat4gfs.htm#persistence" TARGET="_mainDisplayFrame">209</A>
</DT>

<DT>Picture
<A HREF="pat4cfs.htm#picture-163c" TARGET="_mainDisplayFrame"><I>163c</I></A>,
<A HREF="pat4cfs.htm#picture-164o" TARGET="_mainDisplayFrame"><I>164o</I></A>
</DT>

<DT>PLoP, <I>see</I> <A HREF="index-P.htm#Pattern Languages of Programs" target="TEXT">Pattern Languages of Programs</A></DT>

<a name="pluggable adapter"></a>
<DT>pluggable adapter
<A HREF="pat4afs.htm#pluggable" TARGET="_mainDisplayFrame"><B>142</B></A>
</DT>

<DD>implementation of 
<A HREF="pat4afs.htm#plugap-imp" TARGET="_mainDisplayFrame">144-145</A>,
<A HREF="pat4afs.htm#adapter-param1" TARGET="_mainDisplayFrame"><I>144c</I></A>,
<A HREF="pat4afs.htm#adapter-param2" TARGET="_mainDisplayFrame"><I>145c</I></A>, 
<A HREF="pat4afs.htm#plugap-imp2" TARGET="_mainDisplayFrame">148</A>,
<A HREF="pat4afs.htm#plugap-149c" TARGET="_mainDisplayFrame"><I>149c</I></A>
</DD>

<DT>PMFactory
<A HREF="chap2fs.htm#editor_factory_hierarchy" TARGET="_mainDisplayFrame"><I>50c</I></A>
</DT>

<DT>PMIconWindow 
<A HREF="pat4bfs.htm#pmiconwindow" TARGET="_mainDisplayFrame">151</A>,
<A HREF="pat4bfs.htm#pmiconwindow-151c" TARGET="_mainDisplayFrame"><I>151c</I></A>
</DT>

<DT>PMWindow 
<A HREF="pat4bfs.htm#pmwindow" TARGET="_mainDisplayFrame">151</A>,
<A HREF="pat4bfs.htm#pmwindow-151c" TARGET="_mainDisplayFrame"><I>151c</I></A>
</DT>

<DT>PMWindowImp 
<A HREF="pat4bfs.htm#pmwindowimp" TARGET="_mainDisplayFrame">152</A>,
<A HREF="pat4bfs.htm#pmwindowimp-152c" TARGET="_mainDisplayFrame"><I>152c</I></A>, 
<A HREF="pat4bfs.htm#pmwindowimp" TARGET="_mainDisplayFrame">158-159</A>
</DT>

<DT>Point 
<A HREF="chapCfs.htm#top" TARGET="_mainDisplayFrame">373</A>
</DT>

<DT>Policy, <I>see</I> <A HREF="index-S.htm#Strategy" target="TEXT">S<FONT SIZE=-1>TRATEGY</FONT></A></DT>

<DT>polymorphic iteration 
<A HREF="pat5dfs.htm#iter-polyiter" TARGET="_mainDisplayFrame"><B>258</B></A>
</DT>

<DD>implementing in C++ 
<A HREF="pat5dfs.htm#iter-use-poly" TARGET="_mainDisplayFrame">261</A>
</DD>

<DT>polymorphism 
<A HREF="chap1fs.htm#def-polymorphism" TARGET="_mainDisplayFrame"><B>14</B></A>, 
<A HREF="chapAfs.htm#polymorphism" TARGET="_mainDisplayFrame"><B>361</B></A>
</DT>

<DD>used with inheritance 
<A HREF="chap1fs.htm#poly-w-inherit" TARGET="_mainDisplayFrame">18</A>
</DD>

<DT>postorder traversal, <I>see</I> <A HREF="index-T.htm#traversal" target="TEXT">traversal, postorder</A></DT>

<DT>preorder traversal, <I>see</I> <A HREF="index-T.htm#traversal" target="TEXT">traversal, preorder</A></DT>

<DT>PreorderIterator<A HREF="chap2fs.htm#preorderiterator" TARGET="_mainDisplayFrame">67</A>
</DT>

<DD>member functions 
<A HREF="chap2fs.htm#pre-iter-mem-func" TARGET="_mainDisplayFrame">68-69</A>
</DD>

<DT>Presentation Manager 
<A HREF="chap2fs.htm#present-manage" TARGET="_mainDisplayFrame">35</A>, 
<A HREF="chap2fs.htm#present-manage" TARGET="_mainDisplayFrame">48</A>, 
<A HREF="chap2fs.htm#top" TARGET="_mainDisplayFrame">52</A>, 
<A HREF="chap2fs.htm#present-manage" TARGET="_mainDisplayFrame">56</A>, 
<A HREF="chap2fs.htm#present-manage2" TARGET="_mainDisplayFrame">57</A>, 
<A HREF="pat3afs.htm#motivation" TARGET="_mainDisplayFrame">87</A>, 
<A HREF="pat4bfs.htm#present-manage" TARGET="_mainDisplayFrame">151</A>, 
<A HREF="pat4bfs.htm#present-manage2" TARGET="_mainDisplayFrame">158</A>
</DT>

<DT>PricingV<FONT SIZE=-1>ISITOR</FONT> 
<A HREF="pat5kfs.htm#pricingvisitor" TARGET="_mainDisplayFrame">341</A>
</DT>

<DT>PrintDialog
<A HREF="pat5afs.htm#223o" TARGET="_mainDisplayFrame"><I>223o</I></A>,
<A HREF="pat5afs.htm#224i" TARGET="_mainDisplayFrame"><I>224i</I></A>
</DT>

<DT>private inheritance 
<A HREF="chapAfs.htm#privateinheritance" TARGET="_mainDisplayFrame"><B>361</B></A>, 
<I>see also</I> <A HREF="index-I.htm#inheritance" target="TEXT">inheritance, implementation</A></DT>

<DT>Product</DT>

<DD>participant of B<FONT SIZE=-1>UILDER</FONT>
<A HREF="pat3bfs.htm#structure" TARGET="_mainDisplayFrame"><I>98c</I></A>, 
<A HREF="pat3bfs.htm#prod-part-build" TARGET="_mainDisplayFrame">99</A>
</DD>

<DD>participant of F<FONT SIZE=-1>ACTORY</FONT> M<FONT SIZE=-1>ETHOD</FONT> 
<A HREF="pat3cfs.htm#prod-part-facmeth" TARGET="_mainDisplayFrame">108</A>,
<A HREF="pat3cfs.htm#structure" TARGET="_mainDisplayFrame"><I>108c</I></A>
</DD>

<DT>product objects 
<A HREF="chap2fs.htm#productobjects" TARGET="_mainDisplayFrame"><B>49</B></A>
</DT>

<DD>changing at run-time 
<A HREF="pat3dfs.htm#prodobj-change-runtime" TARGET="_mainDisplayFrame">119</A>
</DD>

<DD>creating in A<FONT SIZE=-1>BSTRACT</FONT> F<FONT SIZE=-1>ACTORY</FONT> 
<A HREF="pat3afs.htm#prodobj-creat-absfact" TARGET="_mainDisplayFrame">90</A>
</DD>

<DD>exchanging 
<A HREF="pat3afs.htm#prodobj-exchange" TARGET="_mainDisplayFrame">89</A>
</DD>

<DD>family of 
<A HREF="pat3afs.htm#top" TARGET="_mainDisplayFrame">87</A>
</DD>

<DD>varying representation of 
<A HREF="pat3bfs.htm#consequences" TARGET="_mainDisplayFrame">100</A>
</DD>

<DT>protection proxy, <I>see</I> <A HREF="index-P.htm#proxy" target="TEXT">proxy, protection</A></DT>

<DT>protocol 
<A HREF="chapAfs.htm#protocol" TARGET="_mainDisplayFrame"><B>361</B></A>
</DT>

<a name="P<FONT SIZE=-1>ROTOTYPE</FONT>"></a>
<DT>P<FONT SIZE=-1>ROTOTYPE</FONT> 
<A HREF="pat3dfs.htm#top" TARGET="_mainDisplayFrame"><B>117</B></A>
</DT>

<DD>compared with A<FONT SIZE=-1>BSTRACT</FONT> F<FONT SIZE=-1>ACTORY</FONT> 
<A HREF="pat3dfs.htm#relatedpatterns" TARGET="_mainDisplayFrame">126</A>, 
<A HREF="disc3fs.htm#protocol-vs-abstrfact" TARGET="_mainDisplayFrame">135</A>
</DD>

<DD>combined with C<FONT SIZE=-1>OMMAND</FONT> 
<A HREF="pat5bfs.htm#proto-w-command" TARGET="_mainDisplayFrame">238</A>
</DD>

<DD>compared with F<FONT SIZE=-1>ACTORY</FONT> M<FONT SIZE=-1>ETHOD</FONT> 
<A HREF="pat3cfs.htm#proto-vs-factmeth" TARGET="_mainDisplayFrame">116</A>, 
<A HREF="pat3dfs.htm#proto-vs-factmeth" TARGET="_mainDisplayFrame">120</A>
</DD>

<DD>in catalog summary 
<A HREF="chap1fs.htm#cat-proto" TARGET="_mainDisplayFrame">9</A>
</DD>

<DD>participant of P<FONT SIZE=-1>ROTOTYPE</FONT> 
<A HREF="pat3dfs.htm#participants" TARGET="_mainDisplayFrame">119</A>,
<A HREF="pat3dfs.htm#structure" TARGET="_mainDisplayFrame"><I>119c</I></A>
</DD>

<DD>used to implement A<FONT SIZE=-1>BSTRACT</FONT>
	F<FONT SIZE=-1>ACTORY</FONT> 
<A HREF="pat3afs.htm#proto-imp-absfact" TARGET="_mainDisplayFrame">90</A>
</DD>

<DT>prototype 
<A HREF="pat3dfs.htm#def-proto" TARGET="_mainDisplayFrame"><B>117</B></A>
</DT>

<DT>prototype manager 
<A HREF="pat3dfs.htm#proto-manager" TARGET="_mainDisplayFrame"><B>121</B></A>
</DT>

<DT>prototyping phase of lifecycle 
<A HREF="chap6fs.htm#proto-phase" TARGET="_mainDisplayFrame">353</A>
</DT>

<DT><a name="P<FONT SIZE=-1>ROXY</FONT>"></a>P<FONT SIZE=-1>ROXY</FONT> 
<A HREF="pat4gfs.htm#top" TARGET="_mainDisplayFrame"><B>207</B></A>
</DT>

<DD>combined with I<FONT SIZE=-1>TERATOR</FONT> 
<A HREF="pat5dfs.htm#proxy-w-iter" TARGET="_mainDisplayFrame">262</A>
</DD>

<DD>compared with D<FONT SIZE=-1>ECORATOR</FONT> 
<A HREF="disc4fs.htm#proxy-vs-decor" TARGET="_mainDisplayFrame">220</A>
</DD>

<DD>in catalog summary 
<A HREF="chap1fs.htm#cat-proxy" TARGET="_mainDisplayFrame">9</A>
</DD>

<a name="Proxy"></a>
<DT>Proxy</DT>

<DD>participant of P<FONT SIZE=-1>ROXY</FONT>
<A HREF="pat4gfs.htm#structure" TARGET="_mainDisplayFrame"><I>209co</I></A>, 
<A HREF="pat4gfs.htm#participants" TARGET="_mainDisplayFrame">209</A>
</DD>

<DT><a name="proxy"></a>proxy 
<A HREF="pat4gfs.htm#def-proxy" TARGET="_mainDisplayFrame"><B>207</B></A>
</DT>

<DD>protection 
<A HREF="pat4gfs.htm#protectionproxy" TARGET="_mainDisplayFrame"><B>208</B></A>, 
<A HREF="pat4gfs.htm#protectionproxy2" TARGET="_mainDisplayFrame">210</A>
</DD>

<DD>remote 
<A HREF="pat4gfs.htm#remoteproxy" TARGET="_mainDisplayFrame"><B>208</B></A>, 
<A HREF="pat4gfs.htm#remoteproxy2" TARGET="_mainDisplayFrame">210</A>
</DD>

<DD>virtual 
<A HREF="pat4gfs.htm#virtualproxy" TARGET="_mainDisplayFrame"><B>208</B></A>, 
<A HREF="pat4gfs.htm#virtualproxy2" TARGET="_mainDisplayFrame">210</A>
</DD>

<DT>pseudocode 
<A HREF="chap1fs.htm#pseudocode" TARGET="_mainDisplayFrame">16</A>,
<A HREF="chap1fs.htm#pseudocode-16c" TARGET="_mainDisplayFrame"><I>16c</I></A>,
<A HREF="chapBfs.htm#notation_pseudocode" TARGET="_mainDisplayFrame"><I>365c</I></A>
</DT>

<DT>Publish-Subscribe, <I>see</I> <A HREF="index-O.htm#O<FONT SIZE=-1>BSERVER</FONT>" target="TEXT">O<FONT SIZE=-1>BSERVER</FONT></A></DT>

<DT>pull model 
<A HREF="pat5gfs.htm#pullmodel" TARGET="_mainDisplayFrame"><B>298</B></A>
</DT>

<DT>pull-down menu, <I>see</I> <A HREF="index-M.htm#menu-down" target="TEXT">menu, pull-down</A></DT>

<DT>purpose of design pattern, <I>see</I> <A HREF="index-D.htm#design pattern" target="TEXT">design pattern, purpose</A></DT>

<DT>push model 
<A HREF="pat5gfs.htm#pushmodel" TARGET="_mainDisplayFrame"><B>298</B></A>
</DT>

</DL>

